package com.tarena.lbs.coupon.dao.mapper;

import com.tarena.lbs.base.protocol.pager.PageResult;
import com.tarena.lbs.coupon.pojo.po.CouponPO;
import com.tarena.lbs.coupon.pojo.query.UserCouponQuery;
import com.tarena.lbs.coupon.pojo.vo.UserCouponsVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

@Mapper
public interface CouponMapper {
    /**
     * 保存优惠券信息
     * @param couponPO 优惠券实体
     * @return 影响行数
     */
    int insert(CouponPO couponPO);
    
    /**
     * 根据ID更新优惠券信息
     * @param couponPO 优惠券实体
     * @return 影响行数
     */
    int updateById(CouponPO couponPO);
    
    /**
     * 根据ID查询优惠券信息
     * @param id 优惠券ID
     * @return 优惠券实体
     */
    CouponPO selectById(@Param("id") Integer id);
    
    /**
     * 查询所有优惠券列表
     * @return 优惠券列表
     */
    List<CouponPO> selectAll();

    PageResult<UserCouponsVO> receiveList(UserCouponQuery couponQuery);
}